home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Event;
- import java.awt.Graphics;
- import java.awt.Panel;
- import java.awt.Rectangle;
- import java.util.Vector;
-
- class DrawPanel extends Panel {
- public static final int LINES = 0;
- public static final int POINTS = 1;
- int mode;
- Vector lines = new Vector();
- Vector colors = new Vector();
- // $FF: renamed from: x1 int
- int field_0;
- // $FF: renamed from: y1 int
- int field_1;
- // $FF: renamed from: x2 int
- int field_2;
- // $FF: renamed from: y2 int
- int field_3;
- // $FF: renamed from: xl int
- int field_4;
- // $FF: renamed from: yl int
- int field_5;
-
- public DrawPanel() {
- ((Component)this).setBackground(Color.white);
- }
-
- public void setDrawMode(int mode) {
- switch (mode) {
- case 0:
- case 1:
- this.mode = mode;
- return;
- default:
- throw new IllegalArgumentException();
- }
- }
-
- public boolean handleEvent(Event e) {
- switch (e.id) {
- case 201:
- System.exit(0);
- return true;
- case 502:
- switch (this.mode) {
- case 0:
- this.colors.addElement(((Component)this).getForeground());
- this.lines.addElement(new Rectangle(this.field_0, this.field_1, e.x, e.y));
- this.field_2 = this.field_4 = -1;
- case 1:
- default:
- ((Component)this).repaint();
- return true;
- }
- case 501:
- switch (this.mode) {
- case 0:
- this.field_0 = e.x;
- this.field_1 = e.y;
- this.field_2 = -1;
- break;
- case 1:
- default:
- this.colors.addElement(((Component)this).getForeground());
- this.lines.addElement(new Rectangle(e.x, e.y, -1, -1));
- this.field_0 = e.x;
- this.field_1 = e.y;
- ((Component)this).repaint();
- }
-
- return true;
- case 506:
- switch (this.mode) {
- case 0:
- this.field_4 = this.field_2;
- this.field_5 = this.field_3;
- this.field_2 = e.x;
- this.field_3 = e.y;
- break;
- case 1:
- default:
- this.colors.addElement(((Component)this).getForeground());
- this.lines.addElement(new Rectangle(this.field_0, this.field_1, e.x, e.y));
- this.field_0 = e.x;
- this.field_1 = e.y;
- }
-
- ((Component)this).repaint();
- return true;
- default:
- return false;
- }
- }
-
- public void paint(Graphics g) {
- int np = this.lines.size();
- g.setColor(((Component)this).getForeground());
- g.setPaintMode();
-
- for(int i = 0; i < np; ++i) {
- Rectangle p = (Rectangle)this.lines.elementAt(i);
- g.setColor((Color)this.colors.elementAt(i));
- if (p.width != -1) {
- g.drawLine(p.x, p.y, p.width, p.height);
- } else {
- g.drawLine(p.x, p.y, p.x, p.y);
- }
- }
-
- if (this.mode == 0) {
- g.setXORMode(((Component)this).getBackground());
- if (this.field_4 != -1) {
- g.drawLine(this.field_0, this.field_1, this.field_4, this.field_5);
- }
-
- g.setColor(((Component)this).getForeground());
- g.setPaintMode();
- if (this.field_2 != -1) {
- g.drawLine(this.field_0, this.field_1, this.field_2, this.field_3);
- }
- }
-
- }
- }
-